import 'package:lx_widgets_library/extension/enum_ex.dart';

/// 单位类型
enum LxDataUnit {
  /// 分钟
  min(0, 'min'),

  /// 秒
  seconds(0, 's'),

  /// 距离
  mileage(0, 'km'),

  /// 速度
  speed(0, 'km/h'),

  /// 速度(公制) km/h
  metricSpeed(0, 'km/h'),

  /// 温度
  temperature(0, '℃'),

  /// 功率
  power(0, 'w'),

  /// 电流
  current(0, 'A'),

  /// 电压
  voltage(0, 'V'),

  /// 扭矩
  torque(0, 'N·m'),

  /// 百分比
  percentage(0, '%'),

  /// 角度
  angle(0, '°'),

  /// 能耗
  consumption(0, 'w·h');

  final int rawValue;
  final String name;
  const LxDataUnit(this.rawValue, this.name);
  // 通过 title 获取枚举类型
  static LxDataUnit? getTypeByTitle(String title) =>
      LxDataUnit.values.firstWhereOrNull((activity) => activity.name == title);
  // 通过 rawValue 获取枚举类型
  static LxDataUnit? getTypeByNum(int rawValue) => LxDataUnit.values
      .firstWhereOrNull((activity) => activity.rawValue == rawValue);
  // 通过 rawValue 获取 title
  static String? getValue(int rawValue) => LxDataUnit.values
      .firstWhereOrNull((activity) => activity.rawValue == rawValue)
      ?.name;
}
